package jFreeChart;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;

public class LineChart
{

	/**
	 * 创建JFreeChart Line Chart（折线图）
	 */
	public static void main(String[] args)
	{
		// 步骤1：创建CategoryDataset对象（准备数据）
		CategoryDataset dataset = createDataset();

		// 步骤2：根据Dataset 生成JFreeChart对象，以及做相应的设置
		JFreeChart chart = createChart(dataset);
		ChartHelper.setFontBarChartDefault(chart);

		// 步骤3：将JFreeChart对象输出到文件，Servlet输出流等
		// ChartHelper.saveAsFile(chart, "F:\\line.jpeg", 600, 400);
		// 或者步骤3：将JFreeChart对象图形窗口展示
		ChartHelper.showChartFrame("水果产量图 ", chart, true);
	}

	// 根据CategoryDataset创建JFreeChart对象
	public static JFreeChart createChart(CategoryDataset categoryDataset)
	{
		// 创建JFreeChart对象：ChartFactory.createLineChart
		JFreeChart jfreechart = ChartFactory.createLineChart("水果产量分析图", // 标题
				"年分", // categoryAxisLabel （category轴，横轴，X轴标签）
				"数量", // valueAxisLabel（value轴，纵轴，Y轴的标签）
				categoryDataset, // dataset
				PlotOrientation.VERTICAL, //
				true, // legend
				false, // tooltips
				false); // URLs

		// // 使用CategoryPlot设置各种参数。以下设置可以省略。
		// CategoryPlot plot = (CategoryPlot) jfreechart.getPlot();
		// // 背景色 透明度
		// plot.setBackgroundAlpha(0.5f);
		// // 前景色 透明度
		// plot.setForegroundAlpha(0.5f);
		// // 其他设置 参考 CategoryPlot类

		return jfreechart;
	}

	/**
	 * 创建CategoryDataset对象
	 * 
	 */
	public static CategoryDataset createDataset()
	{

		String[] rowKeys = { "香蕉", "苹果", "哈哈" };
		String[] colKeys = { "1987", "1997", "2007" };

		double[][] data = { { 50, 20, 30 }, { 20, 10D, 40D }, { 40, 30.0008D, 38.24D }, };

		// 或者使用类似以下代码
		// DefaultCategoryDataset categoryDataset = new
		// DefaultCategoryDataset();
		// categoryDataset.addValue(10, "rowKey", "colKey");

		return ChartHelper.getCategoryDatasetOfLine(rowKeys, colKeys, data);
	}
}
